home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / ldap_utf8.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-07-24  |  3.5 KB  |  107 lines

  1. /* $OpenLDAP: pkg/ldap/include/ldap_utf8.h,v 1.11.2.4 2008/02/11 23:24:10 kurt Exp $ */
  2. /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  3.  *
  4.  * Copyright 1998-2008 The OpenLDAP Foundation.
  5.  * All rights reserved.
  6.  *
  7.  * Redistribution and use in source and binary forms, with or without
  8.  * modification, are permitted only as authorized by the OpenLDAP
  9.  * Public License.
  10.  *
  11.  * A copy of this license is available in file LICENSE in the
  12.  * top-level directory of the distribution or, alternatively, at
  13.  * <http://www.OpenLDAP.org/license.html>.
  14.  */
  15. /* This notice applies to changes, created by or for Novell, Inc.,
  16.  * to preexisting works for which notices appear elsewhere in this file.
  17.  *
  18.  * Copyright (C) 2000 Novell, Inc. All Rights Reserved.
  19.  *
  20.  * THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND TREATIES.
  21.  * USE, MODIFICATION, AND REDISTRIBUTION OF THIS WORK IS SUBJECT TO VERSION
  22.  * 2.0.1 OF THE OPENLDAP PUBLIC LICENSE, A COPY OF WHICH IS AVAILABLE AT
  23.  * HTTP://WWW.OPENLDAP.ORG/LICENSE.HTML OR IN THE FILE "LICENSE" IN THE
  24.  * TOP-LEVEL DIRECTORY OF THE DISTRIBUTION. ANY USE OR EXPLOITATION OF THIS
  25.  * WORK OTHER THAN AS AUTHORIZED IN VERSION 2.0.1 OF THE OPENLDAP PUBLIC
  26.  * LICENSE, OR OTHER PRIOR WRITTEN CONSENT FROM NOVELL, COULD SUBJECT THE
  27.  * PERPETRATOR TO CRIMINAL AND CIVIL LIABILITY.
  28.  */
  29. /* Note: A verbatim copy of version 2.0.1 of the OpenLDAP Public License
  30.  * can be found in the file "build/LICENSE-2.0.1" in this distribution
  31.  * of OpenLDAP Software.
  32.  */
  33.  
  34. #ifndef _LDAP_UTF8_H
  35. #define _LDAP_UTF8_H
  36.  
  37. #include <lber_types.h>    /* get ber_*_t */
  38.  
  39. /*
  40.  * UTF-8 Utility Routines
  41.  */
  42.  
  43. LDAP_BEGIN_DECL
  44.  
  45. #define LDAP_UCS4_INVALID (0x80000000U)
  46. typedef ber_int_t ldap_ucs4_t;
  47.  
  48.  
  49. /* LDAP_MAX_UTF8_LEN is 3 or 6 depending on size of wchar_t */
  50. #define LDAP_MAX_UTF8_LEN  ( sizeof(wchar_t) * 3/2 )
  51.  
  52. /* Unicode conversion routines  */
  53. LDAP_F( ldap_ucs4_t ) ldap_x_utf8_to_ucs4( LDAP_CONST char * p );
  54. LDAP_F( int ) ldap_x_ucs4_to_utf8( ldap_ucs4_t c, char *buf );
  55.  
  56.  
  57. /*
  58.  * Wide Char / UTF-8 Conversion Routines
  59.  */
  60.  
  61. /* UTF-8 character to Wide Char */
  62. LDAP_F(int) ldap_x_utf8_to_wc LDAP_P((
  63.     wchar_t *wchar, LDAP_CONST char *utf8char ));
  64.  
  65. /* UTF-8 string to Wide Char string */
  66. LDAP_F(int) ldap_x_utf8s_to_wcs LDAP_P((
  67.     wchar_t *wcstr, LDAP_CONST char *utf8str, size_t count ));
  68.  
  69. /* Wide Char to UTF-8 character */
  70. LDAP_F(int) ldap_x_wc_to_utf8 LDAP_P((
  71.     char *utf8char, wchar_t wchar, size_t count ));
  72.  
  73. /* Wide Char string to UTF-8 string */
  74. LDAP_F(int) ldap_x_wcs_to_utf8s LDAP_P((
  75.     char *utf8str, LDAP_CONST wchar_t *wcstr, size_t count ));
  76.  
  77. /*
  78.  * MultiByte Char / UTF-8 Conversion Routines
  79.  */
  80.  
  81. /* UTF-8 character to MultiByte character */
  82. LDAP_F(int) ldap_x_utf8_to_mb LDAP_P((
  83.     char *mbchar, LDAP_CONST char *utf8char,
  84.     int (*ldap_f_wctomb)( char *mbchar, wchar_t wchar )));
  85.  
  86. /* UTF-8 string to MultiByte string */
  87. LDAP_F(int) ldap_x_utf8s_to_mbs LDAP_P((
  88.     char *mbstr, LDAP_CONST char *utf8str, size_t count,
  89.     size_t (*ldap_f_wcstombs)( char *mbstr,
  90.         LDAP_CONST wchar_t *wcstr, size_t count) ));
  91.  
  92. /* MultiByte character to UTF-8 character */
  93. LDAP_F(int) ldap_x_mb_to_utf8 LDAP_P((
  94.     char *utf8char, LDAP_CONST char *mbchar, size_t mbsize,
  95.     int (*ldap_f_mbtowc)( wchar_t *wchar,
  96.         LDAP_CONST char *mbchar, size_t count) ));
  97.  
  98. /* MultiByte string to UTF-8 string */
  99. LDAP_F(int) ldap_x_mbs_to_utf8s LDAP_P((
  100.     char *utf8str, LDAP_CONST char *mbstr, size_t count,
  101.     size_t (*ldap_f_mbstowcs)( wchar_t *wcstr,
  102.         LDAP_CONST char *mbstr, size_t count) ));
  103.  
  104. LDAP_END_DECL
  105.  
  106. #endif /* _LDAP_UTF8_H */
  107.